home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr48 / 386p_200.zip / README.TXT < prev    next >
Text File  |  1995-01-15  |  10KB  |  219 lines

  1. This is 386Power (386P) Release 2.00
  2. plus part of the XGE (eXtended Game Engine) 2.00
  3.  
  4. As i said this package contains
  5. A) a DOS-EXTENDER module (386power.asm)
  6. B) Lots of protected mode routines designed to work with 386Power
  7.    but that you can "migrate" to another dos-extender if you want.
  8.  
  9.  
  10. I have been FORCED to early release 386P 2.00 because i've been
  11. called for my military service year before the expected time.
  12. In the last three days before my call i worked really hard to complete
  13. and check as much things i could.
  14.  
  15. Current status:
  16. - The graphics subsystem is complete
  17.   It has lots of useful routines (sprites, tiled background,
  18.   basic pixel blitting and bitmap character support)
  19.   and includes support for loadable device drivers (the XSD drivers)
  20.   that will let you get the max. from your graphic card.
  21.  
  22. - The menuing module needs just and extra function to support
  23.   "automatic setup" of "link on the run" sound drivers
  24.   (this was part of the "new sound system" upgrade), but the module
  25.   works perfectly.
  26.  
  27. - The dos-extender supports DPMI (read: it can run in a dos-box
  28.   under Windows or OS/2) and VCPI (read: with ms-dos you need EMM386
  29.   installed ) (EMS memory support or at least the VCPI interface)
  30.   and it has "alpha" XSM and "raw 386" support (sorry, had not enough
  31.   time to complete the latter two).
  32.   Anyway it is designed for portability, if you want you can
  33.   upgrade it or totally replace it with another dos-extender.
  34.  
  35. - The "new" sound system is ... scattered in various files
  36.   and is absolutely not working, but the pieces of code
  37.   i included and the documentations about the sound system
  38.   may give you some good ideas about how to make a sound system
  39.   on your own (sorry, while devenloping the "new" sound system
  40.   i ripped off the "old" sound system so, don't ask me about
  41.   the old one).
  42.   The sound system will be completed in release 3.00
  43.   (out as soon as possible).
  44.  
  45. - Keyboard, joystick and mouse support is present, together with
  46.   some infos about the "device driven" input device support
  47.   i plan to add.
  48.  
  49. - Lots of documentation and comments, ranging from technichal stuff
  50.   to "computer programming ruminations" to  mentally insane things
  51.   (sorry, something got typed at 2:00 AM, when i'm pretty lunatic)
  52.  
  53. Anyway if you don't like the limitations of this dos-extender
  54. you can "migrate" ALL the XGE library code to ANOTHER dos-extender
  55. in less than two hours.
  56.  
  57. READ PROBLEMS.TXT if you have problems with this code
  58.  
  59. READ ERRATA.TXT  to see last minute corrections to these documents
  60.                  ABSOLUTELY READ IT!!!!!!!
  61.  
  62. And just in case you need it ....
  63. READ QUICKFIX.TXT to see how you can quickly transport ALL the XGE code
  64.                   to another dos-extender!!!!!!
  65.  
  66. What's this stuff:
  67.  
  68. You will find the source code of a dos-extender module (386power)
  69. written in 386 assembly
  70. and various assembly source files containing what i call the basic modules
  71. of XGE (eh! XGE is shorter than "that bunch of routines i think are useful
  72. to build games under protected mode" :) ).
  73.  
  74. You will find nearly a megabyte of optimized assembly code and documentation.
  75.  
  76. Even if you won't use assembly, you can "clip" the critical routines
  77. you find interesting and use 'em with high level languages.
  78.  
  79. Some of these "cannonball" routines make a 486 look like a Pentium
  80. and make a Pentium run TWICE the speed you usually get from it
  81. (because of full scale instruction and data flow optimization).
  82.  
  83.  
  84. BE WARNED: from release 1.01 to 2.00 LOTS OF THINGS CHANGED!!!!
  85.            Look in the *.TXT and *.INC files for more info
  86.            (and if it's not enough, even in the *.asm files there are infos)
  87.            
  88. READ examples.txt to see how to assemble and execute the example programs.
  89.  
  90. Read ALL the .TXT files (ascii text) for more info
  91. (n.b. the rm_*.txt files contains "read me" stuff while the other
  92.       usually contains more specific descriptions).
  93. Some text files are A LOT outside the focus of this collection of source
  94. files, but i think they are worth reading (just to have a laugh if nothing
  95. else) (some of them has been coded at 2:00 A.M. when i'm quite lunatic)
  96.  
  97. If it's not enough, read the *.INC files.
  98. If INCs give too few infos, try the *.ASM ones
  99. but be warned, they are partially commented in italian.
  100.  
  101. Start with books.txt asmpower.txt 386power.txt, tech.txt, troubles.txt
  102. optimize.txt then the rest.
  103.  
  104. What's hot (read: NEW! POWERFUL! :) :) ..and not so much tested (oops!) :(
  105.  
  106. 1) Load-on-the-run DEVICE DRIVERS!
  107.    Now your 386powered programs can self-configure and support
  108.    multiple drivers for audio,video and game input hardware.
  109.    This is no WinG, but makes life easier in extended-dos.
  110.    What's more, you will be able to add new powerful drivers to existing 
  111.    386powered (2.00) programs, and if you can't find the drivers and know
  112.    how to program in 386 assembly you will be able to QUICKLY build yourself
  113.    an XGE driver for your brand new super-duper card.
  114.  
  115. 2) IRQ REDIRECTOR for the VCPI dos-extender subsystem, now you 
  116.    don't have to worry about VCPI or DPMI.
  117.    When serving an IRQ, the redirectors will take care of (almost) everything
  118.    needed to switch into the context of your irq handler.
  119.    I've tested it heavily on my system, but very little on others
  120.    (just two 486 systems)
  121.  
  122. 3) New timing functions! Now the system timer can support multiple time
  123.    granularities with only the irq response time as a limit.
  124.    The "timed" routines are treated like a list of events.
  125.    The only thing you have to remember is not to overload too much the system
  126.    (that is: use the timed routines only to trigger flags or to perform
  127.     very quick and low level activities).
  128.  
  129. 4) Menuing system (quite primitive, but can grow)
  130.    This is a very primitive menuing system, just to give you an idea
  131.    about how to build a menu engine, modify it a little and you will
  132.    get a "professional" menuing system.
  133.  
  134. 5) Whew! My call for militar service has been delayed a little so i had
  135.    enough time to start working on a beefed-up multichannel mixer module
  136.    with lots of useful functions. BUT the call has been delayed VERY little
  137.    (while i expected a 3..4 months delay) so they called me for mil. service
  138.    while i was starting typing in the code. ARGH!
  139.    Anyway i included some of the preliminary stuff to give you an idea
  140.    of what you will see in 386Power 3.00 (out as soon as possible).
  141.  
  142. 6) CHANGED THE DOS-EXTENDER INTERFACE (but you can translate most of the
  143.    old code to "new interface" with just a pair of "search & replace"
  144.    [ change "int 33h"  to "call _ExecINT"
  145.         and "int 32h"  to "call _ExecReal" ].
  146.    Improved IRQ support, added VIRTUAL DMA support (but had not enough
  147.    time to test it very much, oops!).
  148.    Added new useful functions and beefed up dos-extender capabilities
  149.    (see tech.txt).
  150.    Why all this? Portability is the key!
  151.    Now the new interface eases "device driver" linking.
  152.    I also want to make things that by just adding a new "dos-extender module"
  153.    can migrate to a totally new op-sys or PROCESSOR!!!
  154.    The next "system support" dos-extender subsystem i plan to add
  155.    is a "LINUX KERNEL" (as soon as possible)
  156.    so you will be able to run your programs
  157.    without ms-dos (booting a stripped down linux kernel)
  158.    or from within linux (on systems with linux installed)
  159.    (read: In a future release you may see...
  160.           _386Man = 5 --> "Linux lite"
  161.           _386Man = 6 --> full Linux installation
  162.    )
  163.  
  164. 7) CPU DETECTION! Now you can take advantage of all the processor
  165.    capabilities (but still no direct FPU detection)(for now)
  166.    386Power can recognize everything from a 386 to a Pentium
  167.    (and takes care of "detection incompatibilities" caused by
  168.     the "new" Intel 486 with CPUID support)...
  169.    ... and it can already recognize a P6 processor! :)
  170.    (because if there is CPUID support it can see if the CPU
  171.     is "more than a Pentium")
  172.  
  173. What's free:
  174.  
  175. This stuff is freeware (usage it's free if you follow what's said
  176. in COPYING and LICENSE.TXT ).
  177.  
  178. The dos-extender is based on the PMODE dos-extender by Tran
  179. but is NOT a "patched" pmode, it's a different thing using
  180. between the other things modified algorithms taken from it.
  181. Some portions looks the same but act in really different ways, so
  182. if you coded for the pmode don't expect things to be similar
  183. or you could miss some very important points.
  184.  
  185. Without Tran i couldn't produce 386P.
  186. I found lots of info about VCPI and DPMI, but mostly "function call lists".
  187. Only pmode gave me a clear example about how to start up
  188. a protected mode program initializing all the critical things.
  189.  
  190. See the future: (386Power roadmap)
  191. 386P 3.00 WILL INCLUDE ....
  192.   - The "complete" and fully operational XSD sound system
  193.     you can see some fragments into release 2.00
  194.   - High-speed machine code self-compilers YOU can quickly configure to fit
  195.     our needs.
  196.   - Improved graphic interface building blocks.
  197.   - (hopefully) LINUX "game extender"
  198.     (you will be able to run on "raw" hardware, even without messy-dos).
  199.   - Win95 support (if i get my hands on a devenlopement kit).
  200.  
  201. N.B.
  202.  
  203. Into XGE you will find TRLE sprite (Transparency Run Lenght Encoded sprite)
  204. routines. If you use them, always store the bitmaps as "pictures"
  205. (planar bitmaps) or PCX images (compressed if you want to save space)
  206. and compile them to sprite at runtime.
  207. The reason for this is that i may change the TRLE format in the near future.
  208.  
  209. Lorenzo Micheletto.
  210.  
  211. P.S. Maybe, lost in the docs you will find references to a thing
  212.      called 'autolinker'.
  213.      I decided DO NOT include autolink-like capabilities
  214.      because as it was planned it introduced unwanted "cracking" capabilities
  215.      to anything running 386P.
  216.      Maybe after militar service i will work on a "safe" autolink
  217.      but for now don't count on it, just use the loadable drivers.
  218.  
  219.